package com.ly.heart.service;

import java.util.List;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ly.common.core.domain.AjaxResult;
import com.ly.heart.domain.ContractSaleEntity;
import com.ly.heart.domain.dto.ContractSaleOrderDto;
import com.ly.heart.domain.vo.ContractOrderMaterialDetailVo;
import com.ly.heart.domain.vo.ContractSaleOrderVo;

/**
 * 光伏材料/逆变器/组件销售合同Service接口
 *
 * @author cxl
 * @date 2024-05-16
 */
public interface IContractSaleService extends IService<ContractSaleEntity> {
    /**
     * 查询光伏材料/逆变器/组件销售合同
     *
     * @param id 光伏材料/逆变器/组件销售合同主键
     * @return 光伏材料/逆变器/组件销售合同
     */
    ContractSaleOrderVo selectContractSaleEntityById ( String id );

    /**
     * 查询光伏材料/逆变器/组件销售合同列表
     *
     * @param contractSaleEntity 光伏材料/逆变器/组件销售合同
     * @return 光伏材料/逆变器/组件销售合同集合
     */
    AjaxResult selectContractSaleEntityList ( ContractSaleEntity contractSaleEntity );

    /**
     * 新增光伏材料/逆变器/组件销售合同
     *
     * @param contractSaleOrderDto 光伏材料/逆变器/组件销售合同
     * @return 结果
     */
    AjaxResult draft ( ContractSaleOrderDto contractSaleOrderDto );

    /**
     * 新增光伏材料/逆变器/组件销售合同
     *
     * @param contractSaleEntity 光伏材料/逆变器/组件销售合同
     * @return 结果
     */
    AjaxResult submit ( ContractSaleEntity contractSaleEntity );

    /**
     * 修改光伏材料/逆变器/组件销售合同
     *
     * @param contractSaleOrderDto 光伏材料/逆变器/组件销售合同
     * @return 结果
     */
    AjaxResult updateContractSaleEntity ( ContractSaleOrderDto contractSaleOrderDto );

    /**
     * 批量删除光伏材料/逆变器/组件销售合同
     *
     * @param ids 需要删除的光伏材料/逆变器/组件销售合同主键集合
     * @return 结果
     */
    AjaxResult deleteContractSaleEntityByIds ( String[] ids );

    AjaxResult queryMaterial ( ContractSaleEntity contractSaleEntity );

    AjaxResult close ( String id );

    AjaxResult cancel ( String id );

    /**
     * 删除光伏材料/逆变器/组件销售合同信息
     *
     * @param id 光伏材料/逆变器/组件销售合同主键
     * @return 结果
     */
    int deleteContractSaleEntityById ( String id );
}
